/*
 * 
 *
 * 
 */
package com.hboxs.asl.qcloudLVB.dao;

import com.hboxs.asl.Page;
import com.hboxs.asl.Pageable;
import com.hboxs.asl.dao.BaseDao;
import com.hboxs.asl.entity.Member;
import com.hboxs.asl.qcloudLVB.entity.Live;

import java.util.List;

/**
 * Dao - 直播记录
 */
public interface LiveDao extends BaseDao<Live, Long> {

    /**
     * 通过主播id和直播状态来查找live
     *
     * @param anchor     主播
     * @param liveStatus 直播状态
     */
    Live findByAnchorAndStatus(Member anchor, Live.LiveStatus liveStatus);

    /**
     * 查找订直播分页
     *
     * @param pageable   分页信息
     * @param liveStatus 直播状态
     * @return 商品分页
     */
    Page<Live> findPage(Pageable pageable, Live.LiveStatus liveStatus, Live.Type type);

    /**
     * 查找主播创建或者直播中的直播，修改为下线
     *
     * @param anchor 主播
     */
    Live offLive(Member anchor);

    List<Live> findConnectLive(Long connectLiveId);

    List<Live> findConnectLive(Long connectLiveId, Live.LiveStatus liveStatus);

    /**
     * 获取主播直播的视频总数
     * @param type
     * @return
     */
    long getHostLiveCounts(Live.Type type);

}
